using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("AlertPopup")]
	public class AlertPopup : DialogBase
	{
		public enum Response
		{
			OK,
			CONFIRM,
			CANCEL
		}

		public enum ResponseDisplay
		{
			NONE,
			OK,
			CONFIRM,
			CANCEL,
			CONFIRM_CANCEL
		}

		public delegate void ResponseCallback(AlertPopup.Response response, object userData);

		[Attribute38("AlertPopup.PopupInfo")]
		public class PopupInfo : MonoClass
		{
			public enum IconSet
			{
				Default,
				Alternate,
				None
			}

			public UserAttentionBlocker m_attentionCategory => method_2<UserAttentionBlocker>("m_attentionCategory");

			public string m_id => method_4("m_id");

			public string m_headerText => method_4("m_headerText");

			public string m_text => method_4("m_text");

			public string m_okText => method_4("m_okText");

			public string m_confirmText => method_4("m_confirmText");

			public string m_cancelText => method_4("m_cancelText");

			public bool m_showAlertIcon => method_2<bool>("m_showAlertIcon");

			public ResponseDisplay m_responseDisplay => method_2<ResponseDisplay>("m_responseDisplay");

			public object m_responseUserData => method_3<object>("m_responseUserData");

			public Vector3 m_offset => method_2<Vector3>("m_offset");

			public float m_padding => method_2<float>("m_padding");

			public bool m_richTextEnabled => method_2<bool>("m_richTextEnabled");

			public bool m_disableBlocker => method_2<bool>("m_disableBlocker");

			public IconSet m_iconSet => method_2<IconSet>("m_iconSet");

			public UberText.AlignmentOptions m_alertTextAlignment => method_2<UberText.AlignmentOptions>("m_alertTextAlignment");

			public UberText.AnchorOptions m_alertTextAlignmentAnchor => method_2<UberText.AnchorOptions>("m_alertTextAlignmentAnchor");

			public bool m_keyboardEscIsCancel => method_2<bool>("m_keyboardEscIsCancel");

			public PopupInfo(IntPtr address, string className)
				: base(address, className)
			{
			}

			public PopupInfo(IntPtr address)
				: this(address, "PopupInfo")
			{
			}
		}

		public NineSliceElement m_body => method_3<NineSliceElement>("m_body");

		public GameObject m_alertIcon => method_3<GameObject>("m_alertIcon");

		public MultiSliceElement m_buttonContainer => method_3<MultiSliceElement>("m_buttonContainer");

		public UIBButton m_okayButton => method_3<UIBButton>("m_okayButton");

		public UIBButton m_confirmButton => method_3<UIBButton>("m_confirmButton");

		public UIBButton m_cancelButton => method_3<UIBButton>("m_cancelButton");

		public GameObject m_clickCatcher => method_3<GameObject>("m_clickCatcher");

		public UberText m_alertText => method_3<UberText>("m_alertText");

		public Vector3 m_alertIconOffset => method_2<Vector3>("m_alertIconOffset");

		public float m_padding => method_2<float>("m_padding");

		public Vector3 m_loadPosition => method_2<Vector3>("m_loadPosition");

		public Vector3 m_showPosition => method_2<Vector3>("m_showPosition");

		public List<GameObject> m_buttonIconsSet1 => method_3<Class271<GameObject>>("m_buttonIconsSet1")?.method_25();

		public List<GameObject> m_buttonIconsSet2 => method_3<Class271<GameObject>>("m_buttonIconsSet2")?.method_25();

		public static float BUTTON_FRAME_WIDTH => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "AlertPopup", "BUTTON_FRAME_WIDTH");

		public PopupInfo m_popupInfo => method_3<PopupInfo>("m_popupInfo");

		public PopupInfo m_updateInfo => method_3<PopupInfo>("m_updateInfo");

		public float m_alertTextInitialWidth => method_2<float>("m_alertTextInitialWidth");

		public string BodyText => method_13("get_BodyText");

		public AlertPopup(IntPtr address, string className)
			: base(address, className)
		{
		}

		public AlertPopup(IntPtr address)
			: this(address, "AlertPopup")
		{
		}

		public new void Awake()
		{
			method_8("Awake");
		}

		public void Start()
		{
			method_8("Start");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public new bool HandleKeyboardInput()
		{
			return method_11<bool>("HandleKeyboardInput", Array.Empty<object>());
		}

		public new void GoBack()
		{
			method_8("GoBack");
		}

		public void SetInfo(PopupInfo info)
		{
			method_8("SetInfo", info);
		}

		public PopupInfo GetInfo()
		{
			return method_14<PopupInfo>("GetInfo", Array.Empty<object>());
		}

		public new void Show()
		{
			method_8("Show");
		}

		public void UpdateInfo(PopupInfo info)
		{
			method_8("UpdateInfo", info);
		}

		public new void OnHideAnimFinished()
		{
			method_8("OnHideAnimFinished");
		}

		public new void OnShowAnimFinished()
		{
			method_8("OnShowAnimFinished");
		}

		public void InitInfo()
		{
			method_8("InitInfo");
		}

		public void UpdateButtons(ResponseDisplay displayType)
		{
			method_8("UpdateButtons", displayType);
		}

		public void UpdateTexts(PopupInfo popupInfo)
		{
			method_8("UpdateTexts", popupInfo);
		}

		public void UpdateInfoAfterAnim()
		{
			method_8("UpdateInfoAfterAnim");
		}

		public void UpdateAll(PopupInfo popupInfo)
		{
			method_8("UpdateAll", popupInfo);
		}

		public void UpdateLayout()
		{
			method_8("UpdateLayout");
		}

		public void ButtonPress(Response response)
		{
			method_8("ButtonPress", response);
		}

		public void UpdateHeaderText(string text)
		{
			method_8("UpdateHeaderText", text);
		}
	}
}
